from langchain_core.documents import Document
from langchain_chroma import Chroma
from major.models_manager import embedding_model

doc1 = Document(
    page_content="文本本身", # 这边的内容会变成向量
    metadata = {'key':'value'}, # 元数据，不会参与向量计算，但是可以在检索时一起带出来
)

documents = [
    "LangChain是一个强大的开源框架，专门设计用于构建基于大语言模型(LLM)的应用程序。它提供了一系列工具和接口，使开发者能够轻松地将LLM与其他数据源和计算资源连接起来。",
    "通过LangChain，开发者可以实现复杂的自然语言处理流程，如问答系统、文本摘要和内容生成等。该框架特别擅长处理上下文管理和记忆功能，这对于构建连贯的多轮对话系统至关重要。",
    "在检索增强生成(RAG)系统中，LangChain常与向量数据库配合使用。RAG技术通过将信息检索与文本生成相结合，显著提升了生成内容的准确性和相关性。",
    "大型犬如金毛寻回犬需要每天至少90分钟的有氧运动，同时要特别注意髋关节健康；而小型犬如吉娃娃则需要更频繁但较短时间的活动，并对低温环境特别敏感。",
    "猫咪的健康管理同样复杂。现代家猫常见健康问题包括泌尿系统疾病、肥胖和牙周病。",
    "专家建议采用湿粮和干粮结合的喂养方式，每天提供新鲜流动的水源，并定期进行牙齿清洁。"
]

langchain_documents = [
    Document(page_content=text) for text in documents
]

# 1.建档
vector_db = Chroma.from_documents(langchain_documents,embedding=embedding_model.get_model() )

# 2.检索
r = vector_db.similarity_search("周结论是什么",k=3)

for i in r:
    print(i.page_content)